package cc.rengu.redp.bizimpl.upmp.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author System
 */
@Data
@ExcelIgnoreUnannotated
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_B_ORG_INFO")
public class UpmpOrganization implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 法人行标识
     */
    @TableField("INST_ID")
    @ExcelProperty(value = "法人行标识")
    private String instId;

    /**
     * 机构类型
     */
    @TableField("ORG_TYPE")
    @ExcelProperty(value = "机构类型")
    private String orgType;

    /**
     * 机构编码
     */
    @TableField("ORG_CODE")
    @ExcelProperty(value = "机构编码")
    private String orgCode;

    /**
     * 机构名称
     */
    @TableField("ORG_NAME")
    @ExcelProperty(value = "机构名称")
    private String orgName;

    /**
     * 上级机构编码
     */
    @TableField("SUPER_ORG_CODE")
    @ExcelProperty(value = "上级机构编码")
    private String parentOrgCode;

    /**
     * 上级机构ID
     */
    @TableField("SUPER_ORG_ID")
    @ExcelProperty(value = "上级机构ID")
    private String parentId;

    /**
     * 联行号
     */
    @TableField("BANK_BRANCH_CODE")
    @ExcelProperty(value = "联行号")
    private String bankBranchCode;

    /**
     * 关联机构标识
     */
    @TableField("RELATED_INST_ID")
    @ExcelProperty(value = "关联机构标识")
    private String relatedInstId;

    /**
     * 内部银行代码
     */
    @TableField("INNER_BANK_CODE")
    @ExcelProperty(value = "内部银行代码")
    private String innerBankCode;

    /**
     * 机构联系人
     */
    @TableField("CONTACT_NAME")
    @ExcelProperty(value = "机构联系人")
    private String contactName;

    /**
     * 机构编码级别
     */
    @TableField("ORG_LEVEL")
    @ExcelProperty(value = "机构编码级别")
    private String orgLevel;

    /**
     * 联系人地址
     */
    @TableField("CONTACT_ADDRESS")
    @ExcelProperty(value = "联系人地址")
    private String contactAddress;

    /**
     * 联系人传真
     */
    @TableField("CONTACT_FAX")
    @ExcelProperty(value = "联系人传真")
    private String contactFax;

    /**
     * 联系人邮箱
     */
    @TableField("CONTACT_MAIL")
    @ExcelProperty(value = "联系人邮箱")
    private String contactMail;

    /**
     * 联系人电话
     */
    @TableField("CONTACT_PHONE")
    @ExcelProperty(value = "联系人电话")
    private String contactPhone;

    /**
     * 联系人邮编
     */
    @TableField("CONTACT_ZIP_CODE")
    @ExcelProperty(value = "联系人邮编")
    private String contactZipCode;

    /**
     * 状态
     */
    @TableField("ORG_STATUS")
    @ExcelProperty(value = "状态")
    private String orgStatus;

    /**
     * 创建机构
     */
    @TableField("CRT_ORG_ID")
    @ExcelProperty(value = "创建机构")
    private String crtOrgId;

    /**
     * 创建人
     */
    @TableField("OPR_ID")
    @ExcelProperty(value = "创建人")
    private String oprId;

    /**
     * 创建时间戳
     */
    @TableField("CREATE_TIME")
    @ExcelProperty(value = "创建时间戳")
    private String createTime;

    /**
     * 最后修改人
     */
    @TableField("LAST_OPR_ID")
    @ExcelProperty(value = "最后修改人")
    private String lastOprId;

    /**
     * 最后修改时间戳
     */
    @TableField("LAST_UPDATE_TIME")
    @ExcelProperty(value = "最后修改时间戳")
    private String lastUpdateTime;

    /**
     * 所属一级机构代码
     */
    @TableField("FIRST_ORG_CODE")
    @ExcelProperty(value = "所属一级机构代码")
    private String firstOrgCode;

    /**
     * 所属二级机构代码
     */
    @TableField("SECOND_ORG_CODE")
    @ExcelProperty(value = "所属二级机构代码")
    private String secondOrgCode;

    /**
     * 所属三级机构代码
     */
    @TableField("THREE_ORG_CODE")
    @ExcelProperty(value = "所属三级机构代码")
    private String threeOrgCode;

    /**
     * 所属四级机构代码
     */
    @TableField("FOUR_ORG_CODE")
    @ExcelProperty(value = "所属四级机构代码")
    private String fourOrgCode;

    /**
     * 所属五级机构代码
     */
    @TableField("FIVE_ORG_CODE")
    @ExcelProperty(value = "所属五级机构代码")
    private String fiveOrgCode;

    /**
     * 所属六级机构代码
     */
    @TableField("SIX_ORG_CODE")
    @ExcelProperty(value = "所属六级机构代码")
    private String sixOrgCode;

    /**
     * 所属七级机构代码
     */
    @TableField("SEVEN_ORG_CODE")
    @ExcelProperty(value = "所属七级机构代码")
    private String sevenOrgCode;

    //银联机构号
    @TableField(exist = false)
    @ExcelProperty(value = "银联机构号")
    private String upayOrgCode ;

    //关联结算账户ID
    @TableField(exist = false)
    @ExcelProperty(value = "关联结算账户ID")
    private String orgSettleAccountCd;

    // 结算账号
    @TableField(exist = false)
    @ExcelProperty(value = "结算账号")
    private String settleAccount;

    // 结算账号开户名
    @TableField(exist = false)
    @ExcelProperty(value = "结算账号开户名")
    private String settleAccountNm;

    // 结算账号开户行
    @TableField(exist = false)
    @ExcelProperty(value = "结算账号开户行")
    private String settleAccountBk;

}
